package com.hoshiicloud.goods.service;

import com.hoshiicloud.goods.dto.sku.SkuDTO;
import com.hoshiicloud.goods.param.sku.LockSkuStockParam;

import java.util.List;
import java.util.Map;

/**
 * <p>SkuService聚合逻辑处理
 * </p>
 *
 * @author zhangshuhu
 * @since 2019-05-05
 */
public interface SkuService {

    /**
     * 查询sku库存信息
     *
     * @param ids
     * @return
     */
    Map<Long, SkuDTO> querySKuStockByIds(List<Long> ids);

    /**
     * 冻结库存
     *
     * @param lockSkuStocks
     * @return
     */
    boolean lockSkuStock(List<LockSkuStockParam> lockSkuStocks);

    /**
     * 解冻库存
     *
     * @param lockSkuStocks
     * @return
     */
    boolean unLockSkuStock(List<LockSkuStockParam> lockSkuStocks);

    /**
     * 查询扩展sku信息
     *
     * @return
     */
    SkuDTO getExtSku(Long id);

    /**
     * 查询总店库存及Sku信息及库存和冻结数量结果集
     *
     * @param cartVoIdList cartVoIdList
     * @return Map
     */
    Map<Long, SkuDTO> queryHeadOfficeSkuStockByIds(List<Long> cartVoIdList);
}
